1. Field of Art
This invention relates to java beans and more particularly relates to generating and using a delta across like java bean components.
2. Background Technology
JavaBeans is the name of a component architecture for use with the Java programming language. (“JAVABEANS” and “JAVA” are trademarks of Sun Microsystems, Inc.) A java bean is the java term for a “component,” where a component is a reusable building block of application logic that a programmer can combine with other components to form an application program. JavaBeans is an architecture and platform-neutral Application Programming Interface (API) for creating and using dynamic Java components. Java beans enhance the java platform by allowing richer, more dynamic interaction. Java beans allow developers to define independent components that can be used and re-used in a variety of combinations to compose new applications inside a variety of browser and non-browser environments.
A java programmer creates a java application program by assembling components that provide the desired functionality for the application. A java bean may contain code for a relatively simple function such as displaying a button on a graphical user interface (GUI), but it may also contain quite complex code. For example, JavaBeans components can be non-visual functions and services, applets, and more full-scale applications. Each of these components can be built by different developers at separate times. JavaBeans components do not need to be part of the same application build because they are capable of communicating dynamically.
“Enterprise JavaBeans” is a server component architecture which extends the JavaBeans architecture to an enterprise system. “Enterprise” in this sense refers to an organization that uses computers in a networking environment, typically on a very large scale. An enterprise java bean (EJB) is similar to a java bean, with several notable exceptions. Java beans are intended to execute locally, within the java virtual machine (JVM) on which a java application is running. EJBs, on the other hand, are intended to execute on a server machine in a network, where they are remotely invoked by messages sent from a client machine's JVM. Java beans may provide code for visual objects, such as the GUI button discussed above; EJBs are always non-visual.
Both java beans and EJBs differ from “pure” objects in object-oriented programming in that they have a required external interface. This interface is called the “properties” interface. Using this external interface, a development tool can interrogate the java bean or EJB to determine what its component does and how its function is to be invoked by other components. The properties interface also enables developers to customize the behavior of components without having access to the source code. As a simple example, when the component contains code for displaying a button on a GUI, the developer may use a component property to specify the text that should be displayed on the button face.
In large-scale enterprise computing environments, a single server application may serve multiple concurrent client applications, each accessing an overlapping set of EJBs, while other server applications are also accessing the EJBs. A collection of EJBs is stored in a data store, such as a database. These stored EJBs may be accessed concurrently by one or more server application programs. Each server application may have one or more clients that are executing the application at a given time.
One use for java beans, EJBs, or another type of similar component, is to transmit status data from a client to a server. For example, a software program may scan a file system and store certain status data in a first component, which may subsequently be sent to a network server to be stored in a centralized database. At a later time, the software program may scan the file system again and generate a second component that may be sent to the server and stored in the centralized database. However, sending the entire data set of each component every time may require substantial bandwidth and network overhead.
From the foregoing discussion, it should be apparent that a need exists for an apparatus, system, and method that overcome the limitations of conventional network systems that use java beans or other data objects to transmit status data from a client to a server. In particular, such an apparatus, system, and method would beneficially minimize the network overhead consumed by the transfer of the java beans or other data objects.